<?php
session_cache_limiter("nocache");
//session_start();
require_once('../utilidades/ConexionBD.php');
require_once('OrdTrabajo.php');
require_once('MaeUnidadMedida.php');
require_once('SeguridadUsuario.php');

class OrdTrabajoRecMercancia {
    
    //--- Atributos
    private $id=0;
    private $fechaGrab;
    private $usuarioGrab;
    private $activo;
    private $ordTrabajo;
    private $codOrdTrabajoRecMercancia;
    private $maeUnidadMedida;
    private $codOperacionInterna;
    private $fechaInicio;
    private $fechaFin;
    private $consignatario;
    private $docTransporte;
    private $manifiesto;
    private $fechaManifiesto;
    private $depositoAduana;
    private $bultos;
    private $peso;
    private $observaciones;
    
    //--- constructor
    function __construct(){
        $this->ordTrabajo= new OrdTrabajo();
        $this->maeUnidadMedida= new MaeUnidadMedida();
        $this->consignatario=new MaeCliente();
    }    
    
    public static function selectByIdOrdTrabajo($idOrdTrabajo){
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncOrdTrabajoRecMercancia\"('selectByIdOrdTrabajo',NULL,".$idOrdTrabajo.",NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));                
        }
        //--- Cierro la conexion
        ConexionBD::get()->desconectarse();        
        
        while($row = pg_fetch_array($res)) {
            $list=array(
                "id"                   =>$row["@id"],
                "fechaGrab"            =>$row["@fechaGrab"],
                "usuarioGrab"          =>$row["@usuarioGrab"],
                "activo"               =>$row["@activo"],
                "codOrdTrabajo"        =>$row["@codOrdTrabajo"],
                "codOrdTrabajoRecMercancia" =>$row["@codOrdTrabajoRecMercancia"],            
                "codMaeUnidadMedida"        =>$row["@codMaeUnidadMedida"],            
                "codOperacionInterna"       =>$row["@codOperacionInterna"],            
                "fechaInicio"               =>$row["@fechaInicio"],            
                "fechaFin"                  =>$row["@fechaFin"],            
                "consignatario"             =>$row["@consignatario"],            
                "docTransporte"             =>$row["@docTransporte"],            
                "manifiesto"                =>$row["@manifiesto"],            
                "fechaManifiesto"           =>$row["@fechaManifiesto"],            
                "depositoAduana"            =>$row["@depositoAduana"],            
                "bultos"                    =>$row["@bultos"],            
                "peso"                      =>$row["@peso"],            
                "observaciones"             =>$row["@observaciones"],
            );
            return json_encode($list);
        }
        return json_encode("");
    }
    
    //--- Metodos        
    public function selectThisByIdOrdTrabajo($idOrdTrabajo){
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncOrdTrabajoRecMercancia\"('selectByIdOrdTrabajo',NULL,".$idOrdTrabajo.",NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));                
        }
        //--- Cierro la conexion
        ConexionBD::get()->desconectarse();        
        
        while($row = pg_fetch_array($res)) {
                $this->id                   =$row["@id"];
                $this->fechaGrab            =$row["@fechaGrab"];
                $this->usuarioGrab          =$row["@usuarioGrab"];
                $this->activo               =$row["@activo"];
                $this->ordTrabajo->setCodOrdTrabajo($row["@codOrdTrabajo"]);
                $this->codOrdTrabajoRecMercancia =$row["@codOrdTrabajoRecMercancia"];            
                $this->maeUnidadMedida->setCodMaeUnidadMedida($row["@codMaeUnidadMedida"]);            
                $this->codOperacionInterna       =$row["@codOperacionInterna"]; 
                $this->fechaInicio               =$row["@fechaInicio"];            
                $this->fechaFin                  =$row["@fechaFin"];            
                $this->consignatario             =$row["@consignatario"];            
                $this->docTransporte             =$row["@docTransporte"];            
                $this->manifiesto                =$row["@manifiesto"];            
                $this->fechaManifiesto           =$row["@fechaManifiesto"];            
                $this->depositoAduana            =$row["@depositoAduana"];            
                $this->bultos                    =$row["@bultos"];            
                $this->peso                      =$row["@peso"];            
                $this->observaciones             =$row["@observaciones"];
            return;
        }
    }
    
    public static function selectById($id){
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncOrdTrabajoRecMercancia\"('selectById',NULL,".$id.",NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));                
        }
        //--- Cierro la conexion
        ConexionBD::get()->desconectarse();        
        
        while($row = pg_fetch_array($res)) {
            $list=array(
                "id"                   =>$row["@id"],
                "fechaGrab"            =>$row["@fechaGrab"],
                "usuarioGrab"          =>$row["@usuarioGrab"],
                "activo"               =>$row["@activo"],
                "codOrdTrabajo"        =>$row["@codOrdTrabajo"],
                "codOrdTrabajoRecMercancia" =>$row["@codOrdTrabajoRecMercancia"],            
                "codMaeUnidadMedida"        =>$row["@codMaeUnidadMedida"],            
                "codOperacionInterna"       =>$row["@codOperacionInterna"],            
                "fechaInicio"               =>$row["@fechaInicio"],            
                "fechaFin"                  =>$row["@fechaFin"],            
                "consignatario"             =>$row["@consignatario"],            
                "docTransporte"             =>$row["@docTransporte"],            
                "manifiesto"                =>$row["@manifiesto"],            
                "fechaManifiesto"           =>$row["@fechaManifiesto"],            
                "depositoAduana"            =>$row["@depositoAduana"],            
                "bultos"                    =>$row["@bultos"],            
                "peso"                      =>$row["@peso"],            
                "observaciones"             =>$row["@observaciones"],
            );
            return json_encode($list);
        }
        return json_encode("");
    }
    
    public static function selectByIdOrdTrabajoHTMLTableFormat($idOrdTrabajo){
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncOrdTrabajoRecMercancia\"('selectByIdOrdTrabajo',NULL,".$idOrdTrabajo.",NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);";
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));
        }
        
        $html="";
        while($row = pg_fetch_array($res)) {
            $html=$html."<tr id='".$row["@id"]."'>";
            $html=$html."<td>".$row["@codOrdTrabajoRecMercancia"]."</td>";        
            $html=$html."<td>".$row["@cantidad"]."</td>";        
            $html=$html."<td>".$row["@observaciones"]."</td>";        
            $html=$html."<td>&nbsp;<i class='icon-remove-sign'></i></td>";        
            $html=$html."</tr>";                    
        }
        //-- Cierro la conexion
        ConexionBD::get()->desconectarse();        
        
        //-- retorno el resultado
        return json_encode(array("HTML"=>$html));        
    }
    
    public static function selectByOrdTrabajoHTMLTableFormat($codOrdTrabajo){
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncOrdTrabajoRecMercancia\"('selectByOrdTrabajo',NULL,NULL,NULL,NULL,NULL,'".$codOrdTrabajo."',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);";
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));
        }
        
        $html="";
        while($row = pg_fetch_array($res)) {
            $html=$html."<tr id='".$row["@id"]."'>";
            $html=$html."<td>".$row["@codOrdTrabajoRecMercancia"]."</td>";        
            $html=$html."<td>".$row["@cantidad"]."</td>";        
            $html=$html."<td>".$row["@observaciones"]."</td>";        
            $html=$html."<td>&nbsp;<i class='icon-remove-sign'></i></td>";        
            $html=$html."</tr>";                    
        }
        //-- Cierro la conexion
        ConexionBD::get()->desconectarse();        
        
        //-- retorno el resultado
        return json_encode(array("HTML"=>$html));       
    }
    
    public static function insert($codUsuario,$activo,$codOrdTrabajo,$codOrdTrabajoRecMercancia,$codMaeUnidadMedida,$codOperacionInterna,$fechaInicio,$fechaFin,$consignatario,$docTransporte,$manifiesto,$fechaManifiesto,$depositoAduana,$bultos,$peso,$observaciones){
        //-- Valido
        if($bultos=="" || !is_numeric($bultos)){
            return json_encode(array("ERROR"=>'El valor del campo Bultos debe ser un numero, verifique.'));
        }
        if($bultos<0){
            return json_encode(array("ERROR"=>'El valor del campo Bultos NO Puede ser negativo, verifique.'));
        }

        if($peso=="" || !is_numeric($peso)){
            return json_encode(array("ERROR"=>'El valor del campo Peso debe ser un numero, verifique.'));
        }
        if($peso<0){
            return json_encode(array("ERROR"=>'El valor del campo Peso NO Puede ser negativo, verifique.'));
        }

        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncOrdTrabajoRecMercancia\"(
            'insert'
            ,NULL,NULL,NULL
            ,'".$codUsuario."'
            ,'".(($activo) ? 'true' : 'false')."'
            ,'".$codOrdTrabajo."'
            ,'".$codOrdTrabajoRecMercancia."'
            ,'".$codMaeUnidadMedida."'
            ,'".$codOperacionInterna."'
            ,'".$fechaInicio."'
            ,'".$fechaFin."'
            ,'".$consignatario."'
            ,'".$docTransporte."'
            ,'".$manifiesto."'
            ,".($fechaManifiesto==""?"NULL":"'".$fechaManifiesto."'")."
            ,'".$depositoAduana."'
            ,'".$bultos."'
            ,'".$peso."'
            ,'".$observaciones."'
            );";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));
        }
        ConexionBD::get()->desconectarse();   
        
        //--- debo retornar el id que se genero al hacer la insercion
        while($row = pg_fetch_array($res)) {
            return json_encode(array("id"=>$row["@id"],"codOrdTrabajoRecMercancia"=>$row["@codOrdTrabajoRecMercancia"]));
        }
        //-- retorno sino devolvio un id, retorno cero para que no se generen erroes en la vista
        return json_encode(array("id"=>"0","codOrdTrabajoRecMercancia"=>""));
    }
    
    public static function update($codUsuario,$id,$activo,$codOrdTrabajo,$codOrdTrabajoRecMercancia,$codMaeUnidadMedida,$codOperacionInterna,$fechaInicio,$fechaFin,$consignatario,$docTransporte,$manifiesto,$fechaManifiesto,$depositoAduana,$bultos,$peso,$observaciones){
        //--- verifico que el registro actual exista
        if($id==0){
            return;
        }
        
        //-- Valido
        if($bultos=="" || !is_numeric($bultos)){
            return json_encode(array("ERROR"=>'El valor del campo Bultos debe ser un numero, verifique.'));
        }
        if($bultos<0){
            return json_encode(array("ERROR"=>'El valor del campo Bultos NO Puede ser negativo, verifique.'));
        }

        if($peso=="" || !is_numeric($peso)){
            return json_encode(array("ERROR"=>'El valor del campo Peso debe ser un numero, verifique.'));
        }
        if($peso<0){
            return json_encode(array("ERROR"=>'El valor del campo Peso NO Puede ser negativo, verifique.'));
        }
        
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncOrdTrabajoRecMercancia\"(
            'update'
            ,NULL
            ,".$id."
            ,NULL
            ,'".$codUsuario."'
            ,'".(($activo) ? 'true' : 'false')."'
            ,'".$codOrdTrabajo."'
            ,'".$codOrdTrabajoRecMercancia."'
            ,'".$codMaeUnidadMedida."'
            ,'".$codOperacionInterna."'
            ,'".$fechaInicio."'
            ,'".$fechaFin."'
            ,'".$consignatario."'
            ,'".$docTransporte."'
            ,'".$manifiesto."'
            ,".($fechaManifiesto==""?"NULL":"'".$fechaManifiesto."'")."
            ,'".$depositoAduana."'
            ,'".$bultos."'
            ,'".$peso."'
            ,'".$observaciones."'
            );";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));
        }
        ConexionBD::get()->desconectarse();        
        return json_encode("");
    }
    
    public static function delete($codUsuario,$id){
        //--- verifico que el registro actual exista
        if($id==0){
            return;
        }
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncOrdTrabajoRecMercancia\"('delete',NULL,".$id.",NULL,'".$codUsuario."',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));
        }
        ConexionBD::get()->desconectarse();        
        return json_encode("");
    }

    public function getId() {
        return $this->id;
    }

    public function setId($id) {
        $this->id = $id;
    }

    public function getFechaGrab() {
        return $this->fechaGrab;
    }

    public function setFechaGrab($fechaGrab) {
        $this->fechaGrab = $fechaGrab;
    }

    public function getUsuarioGrab() {
        return $this->usuarioGrab;
    }

    public function setUsuarioGrab($usuarioGrab) {
        $this->usuarioGrab = $usuarioGrab;
    }

    public function getActivo() {
        return $this->activo;
    }

    public function setActivo($activo) {
        $this->activo = $activo;
    }

    public function getOrdTrabajo() {
        return $this->ordTrabajo;
    }

    public function setOrdTrabajo($ordTrabajo) {
        $this->ordTrabajo = $ordTrabajo;
    }

    public function getCodOrdTrabajoRecMercancia() {
        return $this->codOrdTrabajoRecMercancia;
    }

    public function setCodOrdTrabajoRecMercancia($codOrdTrabajoRecMercancia) {
        $this->codOrdTrabajoRecMercancia = $codOrdTrabajoRecMercancia;
    }

    public function getMaeUnidadMedida() {
        return $this->MaeUnidadMedida;
    }

    public function setMaeUnidadMedida($MaeUnidadMedida) {
        $this->MaeUnidadMedida = $MaeUnidadMedida;
    }

    public function getCodOperacionInterna() {
        return $this->codOperacionInterna;
    }

    public function setCodOperacionInterna($codOperacionInterna) {
        $this->codOperacionInterna = $codOperacionInterna;
    }

    public function getFechaInicio() {
        return $this->fechaInicio;
    }

    public function setFechaInicio($fechaInicio) {
        $this->fechaInicio = $fechaInicio;
    }

    public function getFechaFin() {
        return $this->fechaFin;
    }

    public function setFechaFin($fechaFin) {
        $this->fechaFin = $fechaFin;
    }

    public function getConsignatario() {
        return $this->consignatario;
    }

    public function setConsignatario($consignatario) {
        $this->consignatario = $consignatario;
    }

    public function getDocTransporte() {
        return $this->docTransporte;
    }

    public function setDocTransporte($docTransporte) {
        $this->docTransporte = $docTransporte;
    }

    public function getManifiesto() {
        return $this->manifiesto;
    }

    public function setManifiesto($manifiesto) {
        $this->manifiesto = $manifiesto;
    }

    public function getFechaManifiesto() {
        return $this->fechaManifiesto;
    }

    public function setFechaManifiesto($fechaManifiesto) {
        $this->fechaManifiesto = $fechaManifiesto;
    }

    public function getDepositoAduana() {
        return $this->depositoAduana;
    }

    public function setDepositoAduana($depositoAduana) {
        $this->depositoAduana = $depositoAduana;
    }

    public function getBultos() {
        return $this->bultos;
    }

    public function setBultos($bultos) {
        $this->bultos = $bultos;
    }

    public function getPeso() {
        return $this->peso;
    }

    public function setPeso($peso) {
        $this->peso = $peso;
    }

    public function getObservaciones() {
        return $this->observaciones;
    }

    public function setObservaciones($observaciones) {
        $this->observaciones = $observaciones;
    }
}


?>
